/**
 * 物品类型枚举
 */
export enum ItemType {
  TOOL = "tool", // 工具
  WEAPON = "weapon", // 武器
  HAT = "hat", // 帽子
  BOOTS = "boots", // 鞋类
  RING = "ring", // 戒指
  FORAGE = "forage", // 采集物
  FISH = "fish", // 鱼
  BAIT = "bait", // 鱼饵
  FISHING_GEAR = "fishing gear", // 渔具
  FERTILIZER = "fertilizer", // 肥料
  COOKING = "cooking", // 烹饪
  CRAFTING = "crafting", // 打造
  TREE = "tree", // 树
  SECRET_NOTE = "secret note", // 秘密纸条
  ARTIFACT = "artifact", // 古物
  FURNITURE = "furniture", // 家具
  WALLPAPER = "wallpaper", // 墙纸
  FLOOR = "floor", // 地板
  SEED = "seed", // 种子
  CROP = "crop", // 农作物
  MATERIAL = "material", // 材料
  FOOD = "food", // 食物
  ORE = "ore", // 矿石
  CONSUMABLE = "consumable", // 消耗品
  OTHER = "other", // 其他
}

/**
 * 物品品质枚举
 */
export enum ItemQuality {
  NORMAL = 0, // 普通
  SILVER = 1, // 银质
  GOLD = 2, // 金质
  IRIDIUM = 3, // 铱质
}

export interface IItem {
  id: string; // 物品ID
  name: string; // 物品名称
  description: string; // 物品描述
  type: ItemType; // 物品类型
  quality?: ItemQuality; // 物品品质
  stackable: boolean; // 是否可堆叠
  maxStack: number; // 最大堆叠数量
  sellPrice: number; // 出售价格，如果价格是-1表示不可出售
  buyPrice: number; // 购买价格
  energy?: number; // 恢复能量值
  health?: number; // 恢复健康值
  placeable: boolean; // 是否可放置
  imageUrl: string; // 物品图片URL
  sourceRect: {
    // 图片裁剪区域
    x: number; // 裁剪起点x坐标
    y: number; // 裁剪起点y坐标
    width: number; // 裁剪宽度
    height: number; // 裁剪高度
    drawWidth: number; // 绘制宽度
    drawHeight: number; // 绘制高度
    offsetX: number; // 绘制起点x坐标
    offsetY: number; // 绘制起点y坐标
    dragOffsetX: number; // 拖拽x坐标偏移量
    dragOffsetY: number; // 拖拽y坐标偏移量
  };
  // 碰撞区域
  collisionArea?: {
    offsetX: number;
    offsetY: number;
    width: number;
    height: number;
  };
  interactable?: boolean; // 是否可交互
  rotatable?: boolean; // 是否可旋转
}

/**
 * 物品实例接口
 */
export interface IItemInstance {
  item: IItem; // 物品基础信息
  count?: number; // 数量
  quality?: ItemQuality; // 品质
}
